Vlastnosti Remote Data Modulu
Otázka od: Pavel Poles
29. 11. 2002 16:41
Zdravim,
nevite nekdo jakym zpusobem pristupovat k funkcim a promenym, ktere
mam definovane v unite pro Remote Data modul.Tento modul pouziva multiple
Instancing, a tedy pro kazdy pozadavek od noveh klienta se vytvori v ramci
jedne
aplikace novy modul.
Jakym zpusobem muzu pristoupit k vlastnostem jednotlivych techto modulu?
(nejlepe vsech postupne...)
Pavel Poles
Odpovedá: Jan Sebelík
30. 11. 2002 16:57
> Odesílatel: Pavel Poles <poles@student.fsid.cvut.cz>
> nevite nekdo jakym zpusobem pristupovat k funkcim a promenym, ktere
> mam definovane v unite pro Remote Data modul.Tento modul pouziva multiple
> Instancing, a tedy pro kazdy pozadavek od noveh klienta se vytvori v ramci
> jedne
> aplikace novy modul.
> Jakym zpusobem muzu pristoupit k vlastnostem jednotlivych techto modulu?
> (nejlepe vsech postupne...)
Remote Data modul je jednak normalni pascalovska trida, jednak COM-objekt,
ktery implementuje dany interface. Jako na instanci pascalovske tridy k nemu
lze pristupovat pouze na aplikacnim serveru, jako na COM- objekt na nej lze
pristupovat z klienta pres metody (properties) toho interface.
Z klienta se dostanu na tyto metody proste tak, ze si vyzadam prislusny
interface (CreateCOMObject, CoMyClass.Create, ...).
Jak se dostanu ze serveru na instanci objektu? No, samotny aplikacni server
nema poneti o tom, ze dany COM-objekt vznikl, takze se na nej sam nedostane. Je
treba prepsat metodu Initialize (override) toho Remote Data Modulu a v teto
metode se vznikajici instance COM-objektu nekam zaregistruje. Treba tak, ze
zavola metodu na hlavnim formulari RegisterMe(self) a tato metoda si ten
parametr prida do nejakeho TList.
Pak muzu
for i:=0 to List.Count-1 do
TMyRemoteDataModule(List[i]).NejakaMetoda.
Viz nas kurz Vicevrstve aplikace.
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================